package listTest;

import org.junit.Test;

import java.util.*;
import java.util.function.Consumer;

public class MyList {


    @Test
    public void test01(){
        List<String> list = new ArrayList<>();
        List<String> list2 = new ArrayList<>();

        //增
        list.add("zjz");//插入到list末尾
        list.add(0,"hsp");//插入到list指定索引
        System.out.println(list);

        list2.add("无敌");
        list.addAll(list2);//将一个Collection添加到原list末尾
        list.addAll(0,list2);//将一个Collection添加到原list末指定索引位置
        System.out.println(list);

        //改
        list.set(2,"zhang");//将指定索引修改为传入的元素
        System.out.println(list);

        //删
        list2.clear();//清除所有元素
        System.out.println(list2);

        System.out.println(list.remove(0));//删除并返回指定索引位置的元素
        System.out.println(list.remove("zjz"));//删除指定的元素,删除成功返回true，删除失败返回false
        System.out.println(list.remove("zjz"));


        //查
        boolean b1 = list.contains("无敌");//是否包含该元素
        boolean b2 = list.contains("无敌123");
        System.out.println(b1);
        System.out.println(b2);

        System.out.println(list.get(0));//获取指定索引的元素

        System.out.println(list.indexOf("zjz"));//获取指定元素的索引

        System.out.println(list.isEmpty());//判断list是否不包含元素

        list.iterator();//返回一个迭代器

        System.out.println(list.lastIndexOf("asdasd"));//返回最后出现该元素的索引，如果不存在则返回-1
        System.out.println(list.lastIndexOf("zjz"));

        System.out.println(list.size());//返回元素个数

        list.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();
            }
        });//自定义排序规则
        System.out.println(list);

        List<String> subList = list.subList(0, 2);//前开后闭，获得指定索引区间的元素的list
        System.out.println(subList);

        String[] arrayString = (String[]) list.toArray();//返回一个数组


    }
}
